/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Yves
 */
package edu.com.gestionstock.controleur;

import edu.com.gestionstock.bean.Utilisateur;
import edu.com.gestionstock.dao.DAO;
import edu.com.gestionstock.dao.bo.UtilisateursDAO;
import edu.com.gestionstock.vue.PanneauAfficheClient;

import java.util.ArrayList;

public class ControleurAfficheClient
{

    private PanneauAfficheClient fenetreAfficheClient;
    private Utilisateur client = new Utilisateur();

    public ControleurAfficheClient(PanneauAfficheClient vueListeClients)
    {
        this.fenetreAfficheClient = vueListeClients;
        init();
    }

    public void init()
    {

        //On créer les objets DAO
        DAO<Utilisateur> ClDao = new UtilisateursDAO();
        ArrayList<Utilisateur> arrClient = new ArrayList<Utilisateur>();


        //On utilise la methode DAO pour recupérer la liste des clients
        arrClient = ClDao.findList("");

        //On envoi le resultat dans le tableau d'affichage du stock
        this.afficheClient(arrClient);
 
    }

    public void afficheClient(ArrayList<Utilisateur> arrClient)
    {

        //On vide le contenu du tableau avant d'envoyer le nouveau contenu
        this.videClient();

        //ArrayList qui va contenir chaque ligne du tableau
        ArrayList<String[]> arrData = new ArrayList<String[]>();

        
        for ( Utilisateur client : arrClient )
        {
            //"Id", "Nom", "Prenom", "Rue", "Code Postal", "Commune", "telephone", "Date de Naissance"
            String[] tabCli =
            {
                String.valueOf(client.getId()),
                client.getNom(),
                client.getPrenom(),
                client.getRue(),
                client.getCodePostal(),
                client.getCommune(),
                client.getTelephone()
            };
            arrData.add(tabCli);
        }


        //On envoi l'ArrayList contenant toutes les données au panneau d'affichage du stock
        this.ajoutList(arrData);
    }

    public void videClient()
    {
        //setRowCount permet de redefinir le nombre de ligne dans le tableau
        //Si la valeur est inférieure au nombre de ligne du tableau alors les lignes sont supprimées
        //Ce qui revient à vider le tableau !
        this.fenetreAfficheClient.getModele().setRowCount(0);

        // aller dans panneau affiche client et ajouter la méthode getModele (s'inspirer de panneauAfficheStock)
        // fait => à vérifier  

    }

    //On passe un ArrayList pour completer tout le tableau d'un coup
    public void ajoutList(ArrayList<String[]> arrList)
    {
        for ( String[] ligne : arrList )
        {
            //On convertit utilisateur en tableau de string pour le stocker dans l'ArrayListe globale
            this.fenetreAfficheClient.getModele().addRow(ligne);
        }
    }

    public void setStockVisible(boolean val)
    {
        this.fenetreAfficheClient.setVisible(val);
    }
}
